package 力扣_排序算法.归并;

/**
 * @author zx
 * @create 2022-09-13 17:51
 */
public class 寻找两个正序数组的中位数_4 {
    /**
     *
     * 暴力解法一：力扣：合并两个有序数组_88; 然后根据奇数,还是偶数,返回中位数
     * 时间复杂度：遍历全部数组(m + n)
     * 空间复杂度：开辟了一个数组,保存合并后的两个数组 O(m + n)
     */
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int[] arr = new int[nums1.length + nums2.length];
        int i = 0, j = 0, k = 0;
        while (i < nums1.length && j < nums2.length) {
            if(nums1[i] <= nums2[j]){
                arr[k] = nums1[i];
                i++;
            }else{
                arr[k] = nums2[j];
                j++;
            }
            k++;
        }
        if(i == nums1.length){
            while(j < nums2.length){
                arr[k] = nums2[j];
                j++;
                k++;
            }
        }else{
            while(i < nums1.length){
                arr[k] = nums1[i];
                i++;
                k++;
            }
        }

        if(arr.length % 2 == 0){
            return (arr[(arr.length - 1) / 2] + arr[(arr.length - 1) / 2 + 1]) / 2.0;
        }else{
            return arr[arr.length / 2];
        }
    }
}